/*
 * The majority of this KeyEventArgs class is created by Diryboy for IVScripting.Net - http://ivscripting.codeplex.com/.
 * Only minor changes made by me & converted to CLI C++ syntax for use here.
 *
 * GhostGum - 2010
 */

#pragma once 
#include "Keys.h"

using namespace System;
using namespace System::Collections::Generic;
using namespace System::Text;


namespace GTA
{
	namespace Events
	{
		public ref class KeyEventArgs : EventArgs
		{
		private:
			bool handled;
			Keys keyData;
			bool suppressKeyPress;

		public:
			KeyEventArgs(Keys keyData);

			property bool Alt
			{
				virtual bool get();
			}

			property bool Control
			{
				bool get();
			}

			property bool Handled
			{
				bool get();
				void set(bool value);
			}

			property Keys KeyCode
			{
				Keys get();
			}

			property Keys KeyData
			{
				Keys get();
			}

			property int KeyValue
			{
				int get();
			}

			property Keys Modifiers
			{
				Keys get();
			}

			property bool Shift
			{
				virtual bool get();
			}

			property bool SuppressKeyPress
			{
				bool get();
				void set(bool value);
			}
		};
	};
}

